<?php

namespace core\lib;

use core\Config;

class route
{
    public $ctrl;//control
    public $action;//control@action
    public function __construct()
    {
//        实现一个方法，当访问某个url时候，能调用 特定的控制器@方法
        /**
         * 1. 隐藏index.php
         * 2. 获取URL参数
         * 3. 返回控制器方法
         */
//        p($_SERVER);
        //2.
        if (isset($_SERVER['REQUEST_URI']) && $_SERVER['REQUEST_URI'] !== '/') {
            //     /index/index
            //解析参数
            $path = $_SERVER['REQUEST_URI'];
            //用/ 分割参数  trim 移除两侧多余的 ‘/’
//             p(trim($path,'/'));
            $path_arr = explode('/', trim($path, '/'));
            $this->conf = Config::$config;
            if (isset($path_arr[0])) {
                $this->ctrl = $path_arr[0];
                //TODO path arr
                unset($path_arr[0]);
            } else {
                $this->ctrl = Config::get('DEFAULT_CTRL', 'route');;
            }
            if (isset($path_arr[1])) {
                $this->action = $path_arr[1];
                unset($path_arr[1]);
            } else {
                $this->action = Config::get('DEFAULT_ACTION', 'route');;;
            }
            //url多余部分转化为 GET参数
            //xx/id/1/str/2/test/3
//            p($path_arr);
            //位数
            $count = count($path_arr) + 2;
            $i = 2;
            while ($i < $count) {
                if (isset($path_arr[$i + 1])) {
                    //按照索引value在key后面  如/post/id/2
                    $_GET[$path_arr[$i]] = $path_arr[$i + 1];
                }
                $i += 2;
            }
//            p($_GET);
        } else {
//             默认情况下，控制器就是index
            $this->ctrl = \core\Config::get('DEFAULT_ACTION', 'route');
            $this->action = \core\Config::get('DEFAULT_ACTION', 'route');;
        }
    }
}